iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
1
自我挑戰組

學習30天的c++系列 第 24

DAY24學習30天的c++

  • 分享至 

  • xImage
  •  

設定有效數字

  • setprecision:是設定輸出精確度函數,它將設定下一次輸出字元長度。
  • 輸出字元自動向左對齊,超過有效位數的部分四捨五入。
  • 若有效位數大於輸出字元個數,多餘的空白也將被刪除。
  • setw函數包含於iomanip標題檔中,使用前先插入iomanip檔。
    下面範例的第二行敘述輸出倍精度常數PI值之前,設定輸出有效位數為10,所以將輸出3.141592653十位有效數字。第三行在敘述先設定輸出有效函數為8,所以將輸出3.1415927八位有效數字,第四行在敘述先設定輸出有效函數為6,所以將輸出3.14159六位有效數字。
const double PI = 3.141592653;
cout << setprecision(10) << PI << endl;           //3.141592653十位有效位數
cout << setprecision(8) << PI << endl;           //3.1415927八位有效位數
cout << setprecision(6) << PI << endl;           //3.14159六位有效位數

setw(),setprecision()練習:

#include <iostream>
#include <iomanip>
using namespace std;
const double PI = 3.141592653;
 
int main(int argc, char** argv)
{
    cout << setprecision(8);
	cout << setw(10) << PI * -1 << endl; 
	cout << setw(10) << PI * 100 << endl; 
	cout << setw(10) << PI * 10000 << endl; 
	system("PAUSE");
	return 0;
}

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20201008/20130658drPciIT4H0.png

設定輸出旗號

  • setiosflags:根據參數中的格式旗號設定輸出格式。
  • 格式旗號(format flag):是setiosflags的參數,可用格式。
  • setiosflags旗號設定後則,setprecision()的設定將被改為設定小數點後的有效位數。
  • setiosflags()包含iomanip標題檔中,使用前須引入iomanip標題檔。
  • 若使用二個或多個格式旗號,只需用(|)將各個參數隔開。

setiosflags(),setprecision()練習:

#include <iostream>
#include <iomanip>
using namespace std;
const double PI = 3.141592653;
 
int main(int argc, char** argv)
{
    cout << setprecision(8)
         << setiosflags(ios::fixed);
	cout << setw(10) << PI * -1 << endl; 
	cout << setw(10) << PI * 100 << endl; 
	cout << setw(10) << PI * 10000 << endl; 
	system("PAUSE");
	return 0;
}

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20201008/20130658OWy6M6BGDj.png


上一篇
DAY23 學習30天的c++
下一篇
DAY25 學習30天的c++
系列文
學習30天的c++30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言